package main

import (
	"encoding/json"
	"fmt"
	"os"
)

type KeyValue struct {
	Key   string
	Value string
}

func main() {
	// 创建文件并写入 JSON 数据
	osf, err := os.Create("test.json")
	if err != nil {
		fmt.Println("Error opening file:", err)
		return
	}
	defer osf.Close()

	m := make(map[string]interface{})
	m["name"] = "sunxin"
	m["address"] = "beijing"
	m["age"] = 18
	encoder := json.NewEncoder(osf)
	err = encoder.Encode(m)
	if err != nil {
		fmt.Println("Error encoding JSON:", err)
		return
	}

	// 重置文件指针到文件开头
	osf.Seek(0, 0)

	// 解码 JSON 数据
	var kv KeyValue
	decoder := json.NewDecoder(osf)
	err = decoder.Decode(&kv)
	if err != nil {
		fmt.Println("Error decoding JSON:", err)
		return
	}
	fmt.Println("decoder:", kv)

}
